package pe.com.cotelasa.scp.dominio.service;

import java.util.Collection;
import pe.com.cotelasa.scp.dominio.common.ResultadoServicio;
import pe.com.cotelasa.scp.dominio.common.ResultadoValidacion;
import pe.com.cotelasa.scp.dominio.excepcion.ServiceException;
import pe.com.cotelasa.scp.entidad.Articulo;

public interface IServicioArticulo {

    public Collection<Articulo> listarArticulosActivos() throws ServiceException;

    public Articulo conseguirArticuloPorId(Integer idArticulo) throws ServiceException;

    public Collection<Articulo> listarTodosArticulos() throws ServiceException;

    public ResultadoValidacion validarArticulo(Articulo articulo) throws ServiceException;

    public ResultadoServicio guardarArticulo(Articulo articulo) throws ServiceException;

    public ResultadoServicio actualizarArticulo(Articulo articulo) throws ServiceException;

    public Collection<Articulo> listarArticulosPorFiltro(Articulo articulo) throws ServiceException;

    public Collection<Articulo> obtenerArticuloBusqueda(Articulo articulo) throws ServiceException;

    public Collection<Articulo> listarArticulosPorCategoria(Articulo articulo) throws ServiceException;

    public Articulo obtenerArticuloPorNombreComercial(String nombreComercial) throws ServiceException;

    public Collection<Articulo> buscarArticulosPorModelo(Articulo articulo) throws ServiceException;

    public Collection<Articulo> obtenerReportePorModelo(Articulo articulo) throws ServiceException;

    public Collection<String> listarModelosDistintos(Articulo articulo) throws ServiceException;
}
